// pages/order/index.js

import { request } from '../../request/index.js'
import regeneratorRuntime from '../../lib/runtime/runtime'
 
Page({
  //页面的初始数据
  data: {
    tabs: [  //Tabs组件的数据
      {
        id:0,
        value:'全部订单',
        isActive:true
      },
      {
        id:1,
        value:'待付款',
        isActive:false
      },
      {
        id:2,
        value:'待发货',
        isActive:false
      },
      {
        id:3,
        value:'退款/退货',
        isActive:false
      }
    ],
    orders:[]  //订单列表数据
  },

  onShow(options){

    //0 判断缓存中 是否有 token
    const token = wx.getStorageSync('token');

    //没有则 跳转到授权页面，不再往下执行
    if(!token){
      wx.navigateTo({
        url: '/pages/auth/index'
      });
        
      return
    }

    //1 获取当前的小程序的页面栈-数组 长度最大是10页面
    let pages =  getCurrentPages()
    //console.log(pages);

    //2 数组中 索引最大的页面就是当前页面
    let currentPages = pages[pages.length - 1]
    //console.log(currentPages.options);

    //3 获取url上的type参数
    const {type} = currentPages.options

    //4 根据页面参数type的值 设置tabs栏的激活选项
    this.setTitleByIndex(type-1)

    //5 发起请求，获取订单数据
    this.getOrders(type)

  },

  //获取订单列表数据
  async getOrders(type){

    //1 发起请求 获取订单列表数据
    const res = await request({
      url: '/my/orders/all',
      data: {type}
    })
    //console.log(res);

    //2 保存到data中
    this.setData({
      orders:res.data.message.orders.map(v => ({
        ...v, 
        create_time_cn: (new Date(v.create_time*1000)).toLocaleString()
      }))
    })

    //console.log(res.data.message.orders)

  },

  //点击 tabs栏 选项
  handleTabsItemChange(e){
    //console.log(e)

    //1.获取被点击的标题索引
    const {index} = e.detail
    //console.log(index)

    //2 动态设置激活选项
    this.setTitleByIndex(index)

    //3 传入type值 重新发起请求 获取数据 type = index + 1
    this.getOrders(index+1)
    
  },

  //根据 页面参数 type值 或 当前点击的选项的索引 来设置tabs栏的激活选项
  setTitleByIndex(index){
    //2.修改源数组
    let {tabs} = this.data
    tabs.forEach((v,i) => i===index?v.isActive=true:v.isActive=false)
    //3.赋值到data中
    this.setData({tabs})
  }

})

 